/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogo;

import Client.InterfaceClientSocket;
import Factory.SocketFactory;
import Server.InterfaceServerSocket;
import apiTCP.ServerAPI;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author josemberg
 */
public class JogoServidor {
    static String winner ="";
    public static void main(String[] args) {
        
       
       ArrayList<String> obstaculos = new ArrayList<String>();//{"22","44"};
        obstaculos.add("22");
        obstaculos.add("44");
        
        String goal ="55";
        
		try {
			int porta = 8080;
                        InterfaceServerSocket server1 =  SocketFactory.getServer(SocketFactory.UDP,porta);
                                              
			System.out.println("server on line");
                        while(true){
                        InterfaceClientSocket client = server1.aceitar();
			System.out.println("\n\nconectado...");
                        String res = verificaMovimento(server1.receberMsg(client),obstaculos,goal);
                        String[] resultado = res.split(":");
                       if(resultado[0].equals("ja_venceu")){
                           
                           server1.enviarMsg(res,client);
                       
                       }else if (resultado[0].equals("win")){
                           server1.enviarMsg(resultado[0]+":"+winner,client);
                       }else
                        server1.enviarMsg(resultado[0],client);
                       
                        System.out.println("enviando Resposta\n\n");
                        
                        }
		} catch (IOException ex) {
			Logger.getLogger(ServerAPI.class.getName())
					.log(Level.SEVERE, null, ex);
		}

	}
    public static String verificaMovimento(String mov,  ArrayList<String> obstaculos,String goal) {
      String [] msg = mov.split(":");
      System.out.println("verificando movimento "+msg[1]);
      
        if (!winner.isEmpty()) {
            return "ja_venceu:"+winner;
        } else if (goal.equals(msg[0])) {
            winner = msg[1];
            return "win";
        } else if (obstaculos.contains(msg[0])) {
            return "0";
        } else {
            return "OK";
        }
    }
}
